"use client" import * as React from "react" import { useRouter } from "next/navigation" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table" import { Eye } from "lucide-react" import { GeneralContractListItem } from "@/lib/general-contracts/main/general-contracts-table-columns" interface VendorGeneralContractReviewTableProps { data: GeneralContractListItem[] } function getStatusBadge(status: string) { const statusLabels: Record = { 'Draft': '임시저장', 'Request to Review': '조건검토요청', 'Vendor Replied Review': '협력업체 회신', 'SHI Confirmed Review': '당사 검토 확정', 'Contract Accept Request': '계약승인요청', 'Complete the Contract': '계약체결', 'Reject to Accept Contract': '계약승인거절', 'Contract Delete': '계약폐기', } const statusColors: Record = { 'Request to Review': 'secondary', 'Vendor Replied Review': 'default', 'SHI Confirmed Review': 'default', } const label = statusLabels[status] || status const variant = statusColors[status] || 'outline' return {label} } function getFormattedDate(dateString: string | null | undefined) { if (!dateString) return "-" try { return new Intl.DateTimeFormat("ko-KR", { year: "numeric", month: "2-digit", day: "2-digit", }).format(new Date(dateString)) } catch { return "-" } } function getFormattedDateRange(startDate: string | null | undefined, endDate: string | null | undefined) { if (!startDate && !endDate) return "-" const start = startDate ? getFormattedDate(startDate) : "-" const end = endDate ? getFormattedDate(endDate) : "-" return `${start} ~ ${end}` } export function VendorGeneralContractReviewTable({ data }: VendorGeneralContractReviewTableProps) { const router = useRouter() return ( 조건검토 계약 목록 계약번호 계약명 상태 계약기간 등록일 작업 {data.length === 0 ? ( 조건검토 요청된 계약이 없습니다. ) : ( data.map((contract) => (
{contract.contractNumber} {contract.revision > 0 && ( (Rev.{contract.revision}) )}
{contract.name || "-"}
{getStatusBadge(contract.status)} {getFormattedDateRange(contract.startDate, contract.endDate)} {getFormattedDate(contract.registeredAt)}
)) )}
) }